home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
ELECTRIC
/
DSPICE0S.ZIP
/
dcop.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-22
|
79KB
|
2,466 lines
/* dcop.f -- translated by f2c (version of 3 February 1990 3:36:42).
You must link the resulting object file with the libraries:
-lF77 -lI77 -lm -lc (in that order)
*/
#include "f2c.h"
/* Common Block Declarations */
struct {
integer ielmnt, isbckt, nsbckt, iunsat, nunsat, itemps, numtem, isens,
nsens, ifour, nfour, ifield, icode, idelim, icolum, insize,
junode, lsbkpt, numbkp, iorder, jmnode, iur, iuc, ilc, ilr,
numoff, isr, nmoffc, iseq, iseq1, neqn, nodevs, ndiag, iswap,
iequa, macins, lvnim1, lx0, lvn, lynl, lyu, lyl, lx1, lx2, lx3,
lx4, lx5, lx6, lx7, ld0, ld1, ltd, imynl, imvn, lcvn, nsnod,
nsmat, nsval, icnod, icmat, icval, loutpt, lpol, lzer, irswpf,
irswpr, icswpf, icswpr, irpt, jcpt, irowno, jcolno, nttbr, nttar,
lvntmp;
} tabinf_;
#define tabinf_1 tabinf_
struct {
integer locate[50], jelcnt[50], nunods, ncnods, numnod, nstop, nut, nlt,
nxtrm, ndist, ntlin, ibr, numvs, numalt, numcyc;
} cirdat_;
#define cirdat_1 cirdat_
struct {
doublereal omega, time, delta, delold[7], ag[7], vt, xni, egfet, xmu,
sfactr;
integer mode, modedc, icalc, initf, method, iord, maxord, noncon, iterno,
itemno, nosolv, modac, ipiv, ivmflg, ipostp, iscrch, iofile;
} status_;
#define status_1 status_
struct {
doublereal twopi, xlog2, xlog10, root2, rad, boltz, charge, ctok, gmin,
reltol, abstol, vntol, trtol, chgtol, eps0, epssil, epsox, pivtol,
pivrel;
} knstnt_;
#define knstnt_1 knstnt_
struct {
doublereal atime, aprog[3], adate, atitle[10], defl, defw, defad, defas,
rstats[50];
integer iwidth, lwidth, nopage;
} miscel_;
#define miscel_1 miscel_
struct {
doublereal tcstar[2], tcstop[2], tcincr[2];
integer icvflg, itcelm[2], kssop, kinel, kidin, kovar, kidout;
} dc_;
#define dc_1 dc_
struct {
doublereal fstart, fstop, fincr, skw2, refprl, spw2;
integer jacflg, idfreq, inoise, nosprt, nosout, nosin, idist, idprt;
} ac_;
#define ac_1 ac_
struct {
doublereal value[200000];
} blank_;
#define blank_1 blank_
/* Table of constant values */
static integer c__1 = 1;
static integer c__2 = 2;
static integer c__0 = 0;
/* spice version 2g.6 sccsid=dcop.ma 3/15/83 */
/*< subroutine dcop >*/
/* Subroutine */ int dcop_()
{
/* Initialized data */
static struct {
char e_1[16];
doublereal e_2;
} equiv_229 = { {'(', '1', 'h', ' ', ',', 'a', '8', ',', ' ', ' ', 'f'
, '1', '0', '.', '3', ')'}, 0. };
#define afmt2 ((doublereal *)&equiv_229)
static struct {
char e_1[24];
doublereal e_2;
} equiv_230 = { {'(', '1', 'h', ' ', ',', 'a', '8', ',', '1', 'p', ' '
, ' ', 'e', '1', '0', '.', '2', ')', ' ', ' ', ' ', ' ', ' ',
' '}, 0. };
#define afmt3 ((doublereal *)&equiv_230)
static struct {
char e_1[24];
doublereal e_2;
} equiv_231 = { {'(', '\'', '0', 'm', 'o', 'd', 'e', 'l', ' ', ' ',
' ', '\'', ',', ' ', ' ', '(', '2', 'x', ',', 'a', '8', ')',
')', ' '}, 0. };
#define afmt4 ((doublereal *)&equiv_231)
static struct {
char e_1[32];
doublereal e_2;
} equiv_232 = { {'o', 'p', 'e', 'r', 'a', 't', 'i', 'n', 'g', ' ', 'p'
, 'o', 'i', 'n', 't', ' ', 'i', 'n', 'f', 'o', 'r', 'm', 'a',
't', 'i', 'o', 'n', ' ', ' ', ' ', ' ', ' '}, 0. };
#define optitl ((doublereal *)&equiv_232)
static struct {
char e_1[8];
doublereal e_2;
} equiv_233 = { {'v', 'd', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avd (*(doublereal *)&equiv_233)
static struct {
char e_1[8];
doublereal e_2;
} equiv_234 = { {'v', 'b', 'e', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avbe (*(doublereal *)&equiv_234)
static struct {
char e_1[8];
doublereal e_2;
} equiv_235 = { {'v', 'b', 'c', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avbc (*(doublereal *)&equiv_235)
static struct {
char e_1[8];
doublereal e_2;
} equiv_236 = { {'v', 'c', 'e', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avce (*(doublereal *)&equiv_236)
static struct {
char e_1[8];
doublereal e_2;
} equiv_237 = { {'v', 'g', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avgs (*(doublereal *)&equiv_237)
static struct {
char e_1[8];
doublereal e_2;
} equiv_238 = { {'v', 'd', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avds (*(doublereal *)&equiv_238)
static struct {
char e_1[8];
doublereal e_2;
} equiv_239 = { {'v', 'b', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avbs (*(doublereal *)&equiv_239)
static struct {
char e_1[8];
doublereal e_2;
} equiv_240 = { {'v', '-', 's', 'o', 'u', 'r', 'c', 'e'}, 0. };
#define asrcv (*(doublereal *)&equiv_240)
static struct {
char e_1[8];
doublereal e_2;
} equiv_241 = { {'i', '-', 's', 'o', 'u', 'r', 'c', 'e'}, 0. };
#define asrci (*(doublereal *)&equiv_241)
static struct {
char e_1[8];
doublereal e_2;
} equiv_242 = { {'i', 'd', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define aid (*(doublereal *)&equiv_242)
static struct {
char e_1[8];
doublereal e_2;
} equiv_243 = { {'i', 'b', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define aib (*(doublereal *)&equiv_243)
static struct {
char e_1[8];
doublereal e_2;
} equiv_244 = { {'i', 'c', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define aic (*(doublereal *)&equiv_244)
static struct {
char e_1[8];
doublereal e_2;
} equiv_245 = { {'i', 'g', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define aig (*(doublereal *)&equiv_245)
static struct {
char e_1[8];
doublereal e_2;
} equiv_246 = { {'r', 'e', 'q', ' ', ' ', ' ', ' ', ' '}, 0. };
#define areq (*(doublereal *)&equiv_246)
static struct {
char e_1[8];
doublereal e_2;
} equiv_247 = { {'r', 'p', 'i', ' ', ' ', ' ', ' ', ' '}, 0. };
#define arpi (*(doublereal *)&equiv_247)
static struct {
char e_1[8];
doublereal e_2;
} equiv_248 = { {'r', 'o', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define aro (*(doublereal *)&equiv_248)
static struct {
char e_1[8];
doublereal e_2;
} equiv_249 = { {'c', 'a', 'p', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acap (*(doublereal *)&equiv_249)
static struct {
char e_1[8];
doublereal e_2;
} equiv_250 = { {'c', 'p', 'i', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acpi (*(doublereal *)&equiv_250)
static struct {
char e_1[8];
doublereal e_2;
} equiv_251 = { {'c', 'm', 'u', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acmu (*(doublereal *)&equiv_251)
static struct {
char e_1[8];
doublereal e_2;
} equiv_252 = { {'c', 'g', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acgs (*(doublereal *)&equiv_252)
static struct {
char e_1[8];
doublereal e_2;
} equiv_253 = { {'c', 'g', 'd', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acgd (*(doublereal *)&equiv_253)
static struct {
char e_1[8];
doublereal e_2;
} equiv_254 = { {'c', 'b', 'd', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acbd (*(doublereal *)&equiv_254)
static struct {
char e_1[8];
doublereal e_2;
} equiv_255 = { {'c', 'b', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acbs (*(doublereal *)&equiv_255)
static struct {
char e_1[8];
doublereal e_2;
} equiv_256 = { {'c', 'g', 's', 'o', 'v', 'l', ' ', ' '}, 0. };
#define acgsov (*(doublereal *)&equiv_256)
static struct {
char e_1[8];
doublereal e_2;
} equiv_257 = { {'c', 'g', 'd', 'o', 'v', 'l', ' ', ' '}, 0. };
#define acgdov (*(doublereal *)&equiv_257)
static struct {
char e_1[8];
doublereal e_2;
} equiv_258 = { {'c', 'g', 'b', 'o', 'v', 'l', ' ', ' '}, 0. };
#define acgbov (*(doublereal *)&equiv_258)
static struct {
char e_1[8];
doublereal e_2;
} equiv_259 = { {'d', 'q', 'g', 'd', 'v', 'g', 'b', ' '}, 0. };
#define acggb (*(doublereal *)&equiv_259)
static struct {
char e_1[8];
doublereal e_2;
} equiv_260 = { {'d', 'q', 'g', 'd', 'v', 'd', 'b', ' '}, 0. };
#define acgdb (*(doublereal *)&equiv_260)
static struct {
char e_1[8];
doublereal e_2;
} equiv_261 = { {'d', 'q', 'g', 'd', 'v', 's', 'b', ' '}, 0. };
#define acgsb (*(doublereal *)&equiv_261)
static struct {
char e_1[8];
doublereal e_2;
} equiv_262 = { {'d', 'q', 'b', 'd', 'v', 'g', 'b', ' '}, 0. };
#define acbgb (*(doublereal *)&equiv_262)
static struct {
char e_1[8];
doublereal e_2;
} equiv_263 = { {'d', 'q', 'b', 'd', 'v', 'd', 'b', ' '}, 0. };
#define acbdb (*(doublereal *)&equiv_263)
static struct {
char e_1[8];
doublereal e_2;
} equiv_264 = { {'d', 'q', 'b', 'd', 'v', 's', 'b', ' '}, 0. };
#define acbsb (*(doublereal *)&equiv_264)
static struct {
char e_1[8];
doublereal e_2;
} equiv_265 = { {'c', 'g', 'b', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acgb (*(doublereal *)&equiv_265)
static struct {
char e_1[8];
doublereal e_2;
} equiv_266 = { {'c', 'd', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acds (*(doublereal *)&equiv_266)
static struct {
char e_1[8];
doublereal e_2;
} equiv_267 = { {'v', 't', 'h', ' ', ' ', ' ', ' ', ' '}, 0. };
#define avth (*(doublereal *)&equiv_267)
static struct {
char e_1[8];
doublereal e_2;
} equiv_268 = { {'v', 'd', 's', 'a', 't', ' ', ' ', ' '}, 0. };
#define avdsat (*(doublereal *)&equiv_268)
static struct {
char e_1[8];
doublereal e_2;
} equiv_269 = { {'g', 'm', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define agm (*(doublereal *)&equiv_269)
static struct {
char e_1[8];
doublereal e_2;
} equiv_270 = { {'g', 'd', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define agds (*(doublereal *)&equiv_270)
static struct {
char e_1[8];
doublereal e_2;
} equiv_271 = { {'g', 'm', 'b', ' ', ' ', ' ', ' ', ' '}, 0. };
#define agmb (*(doublereal *)&equiv_271)
static struct {
char e_1[8];
doublereal e_2;
} equiv_272 = { {'c', 'c', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
#define accs (*(doublereal *)&equiv_272)
static struct {
char e_1[8];
doublereal e_2;
} equiv_273 = { {'c', 'b', 'x', ' ', ' ', ' ', ' ', ' '}, 0. };
#define acbx (*(doublereal *)&equiv_273)
static struct {
char e_1[8];
doublereal e_2;
} equiv_274 = { {'r', 'x', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define arx (*(doublereal *)&equiv_274)
static struct {
char e_1[8];
doublereal e_2;
} equiv_275 = { {'b', 'e', 't', 'a', 'd', 'c', ' ', ' '}, 0. };
#define abetad (*(doublereal *)&equiv_275)
static struct {
char e_1[8];
doublereal e_2;
} equiv_276 = { {'b', 'e', 't', 'a', 'a', 'c', ' ', ' '}, 0. };
#define abetaa (*(doublereal *)&equiv_276)
static struct {
char e_1[8];
doublereal e_2;
} equiv_277 = { {'f', 't', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define aft (*(doublereal *)&equiv_277)
static struct {
char e_1[8];
doublereal e_2;
} equiv_278 = { {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
#define ablnk (*(doublereal *)&equiv_278)
static struct {
char e_1[24];
doublereal e_2;
} equiv_279 = { {'(', '/', '/', '1', 'h', '0', ',', '1', '0', 'x', ','
, ' ', ' ', '(', '2', 'x', ',', 'a', '8', ')', ')', ' ', ' ',
' '}, 0. };
#define afmt1 ((doublereal *)&equiv_279)
/* Format strings */
static char fmt_11[] = "(////5x,\002voltage source currents\002//5x,\002\
name\002,7x,\002current\002/)";
static char fmt_21[] = "(/5x,a8,1x,1pd10.3)";
static char fmt_91[] = "(//5x,\002total power dissipation \002,1pd9.2\
,\002 watts\002)";
static char fmt_111[] = "(\0020\002,/,\0020**** voltage-controlled curre\
nt sources\002)";
static char fmt_176[] = "(\0020\002,/,\0020**** voltage-controlled volta\
ge sources\002)";
static char fmt_187[] = "(\0020\002,/,\0020**** current-controlled curre\
nt sources\002)";
static char fmt_197[] = "(\0020\002,/,\0020**** current-controlled volta\
ge sources\002)";
static char fmt_211[] = "(\0020\002,/,\0020**** diodes\002)";
static char fmt_301[] = "(\0020\002,/,\0020**** bipolar junction transis\
tors\002)";
static char fmt_401[] = "(\0020\002,/,\0020**** jfets\002)";
static char fmt_501[] = "(\0020\002,/,\0020**** mosfets\002)";
static char fmt_551[] = "(\002 derivatives of gate (dqgdvx) and bulk (dq\
bdvx) charges\002)";
/* System generated locals */
integer i_1;
doublereal d_1, d_2, d_3;
static doublereal equiv_6[12], equiv_7[12], equiv_8[12], equiv_9[12],
equiv_10[12], equiv_11[12], equiv_12[12], equiv_13[12], equiv_16[
12], equiv_17[12], equiv_18[12], equiv_19[12], equiv_20[12],
equiv_21[12], equiv_22[12], equiv_23[12], equiv_24[12];
/* Builtin functions */
integer s_wsfe(), e_wsfe(), do_fio();
double d_sign();
/* Local variables */
#define cggb (equiv_21)
static doublereal cbsb[12], anam[12];
#define cgsb (equiv_23)
static doublereal amod[12];
static integer ipos, kntr;
extern /* Subroutine */ int move_();
static integer locv, iptr, loct, locm;
static doublereal type, xqco;
extern /* Subroutine */ int sstf_();
static integer node1, node2, node3, node4, node5, node6, i;
static doublereal creal;
#define cgdov (equiv_9)
#define cgbov (equiv_10)
#define cgsov (equiv_8)
#define vdsat (equiv_12)
static doublereal t1, power;
extern /* Subroutine */ int title_();
static doublereal t2;
#define cb (equiv_16)
#define cc (equiv_17)
#define cd (equiv_13)
#define cg (equiv_16)
#define betaac (equiv_11)
#define betadc (equiv_10)
static doublereal gm[12];
#define vd (equiv_16)
#define ft (equiv_12)
#define ro (equiv_7)
#define nodplc ((integer *)&blank_1)
#define cvalue ((complex *)&blank_1)
extern logical memptr_();
#define av1 (equiv_18)
#define ai1 (equiv_19)
#define cap (equiv_17)
#define vbe (equiv_18)
#define vbc (equiv_19)
#define vce (equiv_20)
#define cpi (equiv_8)
#define cmu (equiv_9)
#define ccs (equiv_13)
#define req (equiv_20)
#define cbx (equiv_21)
#define rx (equiv_22)
#define rpi (equiv_6)
#define gds (equiv_19)
#define vds (equiv_18)
#define vgs (equiv_17)
#define vbs (equiv_20)
#define cbd (equiv_6)
#define cbs (equiv_7)
#define vth (equiv_11)
static doublereal gmb[12];
#define cgs (equiv_21)
#define cgd (equiv_22)
#define cgb (equiv_23)
#define cds (equiv_24)
extern /* Subroutine */ int alfnum_(), second_();
static integer ititle, loc, numdev, kntlim;
static doublereal xl, xw, covlgs, covlgd, covlgb, devmod;
extern /* Subroutine */ int sencal_(), clrmem_();
static doublereal cbdb[12];
#define cbgb (equiv_24)
#define cgdb (equiv_22)
/* Fortran I/O blocks */
static cilist io__112 = { 0, 0, 0, fmt_11, 0 };
static cilist io__113 = { 0, 0, 0, fmt_21, 0 };
static cilist io__116 = { 0, 0, 0, fmt_91, 0 };
static cilist io__121 = { 0, 0, 0, fmt_111, 0 };
static cilist io__122 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__124 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__125 = { 0, 0, 0, fmt_176, 0 };
static cilist io__126 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__127 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__128 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__129 = { 0, 0, 0, fmt_187, 0 };
static cilist io__130 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__131 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__132 = { 0, 0, 0, fmt_197, 0 };
static cilist io__133 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__134 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__135 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__138 = { 0, 0, 0, fmt_211, 0 };
static cilist io__139 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__140 = { 0, 0, 0, (char *)afmt4, 0 };
static cilist io__141 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__142 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__143 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__144 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__148 = { 0, 0, 0, fmt_301, 0 };
static cilist io__149 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__150 = { 0, 0, 0, (char *)afmt4, 0 };
static cilist io__151 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__152 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__153 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__154 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__155 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__156 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__157 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__158 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__159 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__160 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__161 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__162 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__163 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__164 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__165 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__166 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__167 = { 0, 0, 0, fmt_401, 0 };
static cilist io__168 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__169 = { 0, 0, 0, (char *)afmt4, 0 };
static cilist io__170 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__171 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__172 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__173 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__174 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__175 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__176 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__190 = { 0, 0, 0, fmt_501, 0 };
static cilist io__191 = { 0, 0, 0, (char *)afmt1, 0 };
static cilist io__192 = { 0, 0, 0, (char *)afmt4, 0 };
static cilist io__193 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__194 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__195 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__196 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__197 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__198 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__199 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__200 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__201 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__202 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__203 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__204 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__205 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__206 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__207 = { 0, 0, 0, fmt_551, 0 };
static cilist io__208 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__209 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__210 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__211 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__212 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__213 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__214 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__215 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__216 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__217 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__218 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__219 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__220 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__221 = { 0, 0, 0, (char *)afmt2, 0 };
static cilist io__222 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__223 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__224 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__225 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__226 = { 0, 0, 0, (char *)afmt3, 0 };
static cilist io__227 = { 0, 0, 0, (char *)afmt3, 0 };
/*< implicit double precision (a-h,o-z) >*/
/* this routine prints out the operating points of the nonlinear */
/* circuit elements. */
/* spice version 2g.6 sccsid=tabinf 3/15/83 */
/*< common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem, >*/
/*< 1 isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize, >*/
/*< 2 junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr, >*/
/*< 3 nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1, >*/
/*< 4 lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd, >*/
/*< 5 imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval, >*/
/*< 6 loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt, >*/
/*< 7 irowno,jcolno,nttbr,nttar,lvntmp >*/
/* spice version 2g.6 sccsid=cirdat 3/15/83 */
/*< common /cirdat/ locate(50),jelcnt(50),nunods,ncnods,numnod,nstop, >*/
/*< 1 nut,nlt,nxtrm,ndist,ntlin,ibr,numvs,numalt,numcyc >*/
/* spice version 2g.6 sccsid=status 3/15/83 */
/*< common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet, >*/
/*< 1 xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon, >*/
/*< 2 iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile >*/
/* spice version 2g.6 sccsid=knstnt 3/15/83 */
/*< common /knstnt/ twopi,xlog2,xlog10,root2,rad,boltz,charge,ctok, >*/
/*< 1 gmin,reltol,abstol,vntol,trtol,chgtol,eps0,epssil,epsox, >*/
/*< 2 pivtol,pivrel >*/
/* spice version 2g.6 sccsid=miscel 3/15/83 */
/*< common /miscel/ atime,aprog(3),adate,atitle(10),defl,defw,defad, >*/
/*< 1 defas,rstats(50),iwidth,lwidth,nopage >*/
/* spice version 2g.6 sccsid=dc 3/15/83 */
/*< common /dc/ tcstar(2),tcstop(2),tcincr(2),icvflg,itcelm(2),kssop, >*/
/*< 1 kinel,kidin,kovar,kidout >*/
/* spice version 2g.6 sccsid=ac 3/15/83 */
/*< common /ac/ fstart,fstop,fincr,skw2,refprl,spw2,jacflg,idfreq, >*/
/*< 1 inoise,nosprt,nosout,nosin,idist,idprt >*/
/* spice version 2g.6 sccsid=blank 3/15/83 */
/*< common /blank/ value(200000) >*/
/*< integer nodplc(64) >*/
/*< complex cvalue(32) >*/
/*< equivalence (value(1),nodplc(1),cvalue(1)) >*/
/*< logical memptr >*/
/*< dimension optitl(4) >*/
/*< dimension anam(12),av1(12),ai1(12),req(12) >*/
/*< dimension amod(12),vd(12),cap(12) >*/
/*< dimension cb(12),cc(12),vbe(12),vbc(12),vce(12),rpi(12), >*/
/*< 1 ro(12),cpi(12),cmu(12),betadc(12),betaac(12),ft(12), >*/
/*< 2 ccs(12),cbx(12),rx(12) >*/
/*< dimension cg(12),vgs(12),vds(12),gds(12),vbs(12),cbd(12),cbs(12), >*/
/*< 2 cgsov(12),cgdov(12),cgbov(12),vth(12),vdsat(12),cd(12),gm(12), >*/
/*< 3 cggb(12),cgdb(12),cgsb(12),cbgb(12),cbdb(12),cbsb(12), >*/
/*< 4 gmb(12) >*/
/*< dimension cgs(12),cgd(12),cgb(12),cds(12) >*/
/*< equivalence(cb(1),cg(1)),(cc(1),vgs(1)),(vbe(1),vds(1)), >*/
/*< 1(vbc(1),gds(1)),(vce(1),vbs(1)),(rpi(1),cbd(1)), >*/
/*< 2(ro(1),cbs(1)),(cpi(1),cgsov(1)),(cmu(1),cgdov(1)), >*/
/*< 3(betadc(1),cgbov(1)),(betaac(1),vth(1)),(ft(1),vdsat(1)), >*/
/*< 4(ccs(1),cd(1)),(cbx(1),cggb(1)),(rx(1),cgdb(1)) >*/
/*< equivalence(vd(1),cg(1)),(cap(1),vgs(1)),(av1(1),vds(1)), >*/
/*< 1 (ai1(1),gds(1)),(req(1),vbs(1)) >*/
/*< equivalence (cgs(1),cggb(1)),(cgd(1),cgdb(1)),(cgb(1),cgsb(1)), >*/
/*< 1 (cds(1),cbgb(1)) >*/
/*< dimension afmt1(3),afmt2(2),afmt3(3),afmt4(3) >*/
/*< data optitl / 8hoperatin, 8hg point , 8hinformat, 8hion / >*/
/*< data av,avd,avbe,avbc,avce,avgs,avds,avbs / 1hv,2hvd,3hvbe,3hvbc, >*/
/*< 1 3hvce,3hvgs,3hvds,3hvbs / >*/
/*< data acntrv,acntri,asrcv,asrci,atrang,atranr,avgain,aigain / >*/
/*< 1 8hv-contrl, 8hi-contrl, 8hv-source, 8hi-source, >*/
/*< 2 8htrans-g , 8htrans-r , 8hv gain , 8hi gain / >*/
/*< data ai,aid,aib,aic,aig / 1hi,2hid,2hib,2hic,2hig / >*/
/*< data areq,arpi,aro / 3hreq,3hrpi,2hro / >*/
/*< data acap,acpi,acmu,acgs,acgd,acbd,acbs / 3hcap,3hcpi,3hcmu,3hcgs, >*/
/*< 1 3hcgd,3hcbd,3hcbs / >*/
/*< data acgsov,acgdov,acgbov /6hcgsovl,6hcgdovl,6hcgbovl/ >*/
/*< data acggb,acgdb,acgsb,acbgb,acbdb,acbsb /7hdqgdvgb,7hdqgdvdb, >*/
/*< 1 7hdqgdvsb,7hdqbdvgb,7hdqbdvdb,7hdqbdvsb/ >*/
/*< data acgb,acds / 3hcgb,3hcds / >*/
/*< data avth, avdsat / 3hvth, 5hvdsat / >*/
/*< data agm,agds / 2hgm,3hgds / >*/
/*< data agmb / 4hgmb / >*/
/*< data accs,acbx,arx /3hccs,3hcbx,2hrx/ >*/
/*< data abetad,abetaa / 6hbetadc,6hbetaac / >*/
/*< data aft / 2hft / >*/
/*< data ablnk /1h / >*/
/*< data afmt1 /8h(//1h0,1,8h0x, (2x,8h,a8)) / >*/
/*< data afmt2 /8h(1h ,a8,,8h f10.3)/ >*/
/*< data afmt3 /8h(1h ,a8,,8h1p e10.,8h2) / >*/
/*< data afmt4 /8h('0model,8h ', (,8h2x,a8)) / >*/
/* .. fix-up the format statements */
/*< kntr=12 >*/
kntr = 12;
/*< if(lwidth.le.80) kntr=7 >*/
if (miscel_1.lwidth <= 80) {
kntr = 7;
}
/*< ipos=12 >*/
ipos = 12;
/*< call move(afmt1,ipos,ablnk,1,2) >*/
move_(afmt1, &ipos, &ablnk, &c__1, &c__2);
/*< call alfnum(kntr,afmt1,ipos) >*/
alfnum_(&kntr, afmt1, &ipos);
/*< ipos=9 >*/
ipos = 9;
/*< call move(afmt2,ipos,ablnk,1,2) >*/
move_(afmt2, &ipos, &ablnk, &c__1, &c__2);
/*< call alfnum(kntr,afmt2,ipos) >*/
alfnum_(&kntr, afmt2, &ipos);
/*< ipos=11 >*/
ipos = 11;
/*< call move(afmt3,ipos,ablnk,1,2) >*/
move_(afmt3, &ipos, &ablnk, &c__1, &c__2);
/*< call alfnum(kntr,afmt3,ipos) >*/
alfnum_(&kntr, afmt3, &ipos);
/*< ipos=14 >*/
ipos = 14;
/*< call move(afmt4,ipos,ablnk,1,2) >*/
move_(afmt4, &ipos, &ablnk, &c__1, &c__2);
/*< call alfnum(kntr,afmt4,ipos) >*/
alfnum_(&kntr, afmt4, &ipos);
/* compute voltage source currents and power dissipation */
/*< call second(t1) >*/
second_(&t1);
/*< if ((mode.eq.1).and.(modedc.eq.2).and.(nosolv.ne.0)) go to 700 >*/
if (status_1.mode == 1 && status_1.modedc == 2 && status_1.nosolv != 0) {
goto L700;
}
/*< power=0.0d0 >*/
power = 0.;
/*< if (jelcnt(9).eq.0) go to 50 >*/
if (cirdat_1.jelcnt[8] == 0) {
goto L50;
}
/*< ititle=0 >*/
ititle = 0;
/*< 11 format (////5x,'voltage source currents'//5x,'name', >*/
/*< 1 7x,'current'/) >*/
/* L11: */
/*< loc=locate(9) >*/
loc = cirdat_1.locate[8];
/*< 20 if ((loc.eq.0).or.(nodplc(loc+11).ne.0)) go to 50 >*/
L20:
if (loc == 0 || nodplc[loc + 10] != 0) {
goto L50;
}
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< iptr=nodplc(loc+6) >*/
iptr = nodplc[loc + 5];
/*< creal=value(lvnim1+iptr) >*/
creal = blank_1.value[tabinf_1.lvnim1 + iptr - 1];
/*< power=power-creal*value(locv+1) >*/
power -= creal * blank_1.value[locv];
/*< if (ititle.eq.0) write (iofile,11) >*/
if (ititle == 0) {
io__112.ciunit = status_1.iofile;
s_wsfe(&io__112);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,21) value(locv),creal >*/
io__113.ciunit = status_1.iofile;
s_wsfe(&io__113);
do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
);
do_fio(&c__1, (char *)&creal, (ftnlen)sizeof(doublereal));
e_wsfe();
/*< 21 format (/5x,a8,1x,1pd10.3) >*/
/*< 30 loc=nodplc(loc) >*/
/* L30: */
loc = nodplc[loc - 1];
/*< go to 20 >*/
goto L20;
/*< 50 loc=locate(10) >*/
L50:
loc = cirdat_1.locate[9];
/*< 60 if ((loc.eq.0).or.(nodplc(loc+6).ne.0)) go to 90 >*/
L60:
if (loc == 0 || nodplc[loc + 5] != 0) {
goto L90;
}
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< node1=nodplc(loc+2) >*/
node1 = nodplc[loc + 1];
/*< node2=nodplc(loc+3) >*/
node2 = nodplc[loc + 2];
/*< power=power-value(locv+1) >*/
/*< 1 *(value(lvnim1+node1)-value(lvnim1+node2)) >*/
power -= blank_1.value[locv] * (blank_1.value[tabinf_1.lvnim1 + node1 - 1]
- blank_1.value[tabinf_1.lvnim1 + node2 - 1]);
/*< loc=nodplc(loc) >*/
loc = nodplc[loc - 1];
/*< go to 60 >*/
goto L60;
/*< 90 write (iofile,91) power >*/
L90:
io__116.ciunit = status_1.iofile;
s_wsfe(&io__116);
do_fio(&c__1, (char *)&power, (ftnlen)sizeof(doublereal));
e_wsfe();
/*< 91 format (//5x,'total power dissipation ',1pd9.2,' watts') >*/
/* small signal device parameters */
/*< numdev=jelcnt(5)+jelcnt(6)+jelcnt(7)+jelcnt(8)+jelcnt(11) >*/
/*< 1 +jelcnt(12)+jelcnt(13)+jelcnt(14) >*/
numdev = cirdat_1.jelcnt[4] + cirdat_1.jelcnt[5] + cirdat_1.jelcnt[6] +
cirdat_1.jelcnt[7] + cirdat_1.jelcnt[10] + cirdat_1.jelcnt[11] +
cirdat_1.jelcnt[12] + cirdat_1.jelcnt[13];
/*< if (numdev.eq.0) go to 600 >*/
if (numdev == 0) {
goto L600;
}
/*< call title(0,lwidth,1,optitl) >*/
title_(&c__0, &miscel_1.lwidth, &c__1, optitl);
/*< kntlim=lwidth/11 >*/
kntlim = miscel_1.lwidth / 11;
/* nonlinear voltage controlled current sources */
/*< if (jelcnt(5).eq.0) go to 175 >*/
if (cirdat_1.jelcnt[4] == 0) {
goto L175;
}
/*< ititle=0 >*/
ititle = 0;
/*< 111 format(1h0,/,'0**** voltage-controlled current sources') >*/
/* L111: */
/*< loc=locate(5) >*/
loc = cirdat_1.locate[4];
/*< kntr=0 >*/
kntr = 0;
/*< 120 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 140 >*/
L120:
if (loc == 0 || nodplc[loc + 12] != 0) {
goto L140;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< loct=lx0+nodplc(loc+12) >*/
loct = tabinf_1.lx0 + nodplc[loc + 11];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< ai1(kntr)=value(loct) >*/
ai1[kntr - 1] = blank_1.value[loct - 1];
/*< if (kntr.ge.kntlim) go to 150 >*/
if (kntr >= kntlim) {
goto L150;
}
/*< 130 loc=nodplc(loc) >*/
L130:
loc = nodplc[loc - 1];
/*< go to 120 >*/
goto L120;
/*< 140 if (kntr.eq.0) go to 175 >*/
L140:
if (kntr == 0) {
goto L175;
}
/*< 150 if (ititle.eq.0) write (iofile,111) >*/
L150:
if (ititle == 0) {
io__121.ciunit = status_1.iofile;
s_wsfe(&io__121);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__122.ciunit = status_1.iofile;
s_wsfe(&io__122);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
io__124.ciunit = status_1.iofile;
s_wsfe(&io__124);
do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< kntr=0 >*/
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+13).eq.0)) go to 130 >*/
if (loc != 0 && nodplc[loc + 12] == 0) {
goto L130;
}
/* nonlinear voltage controlled voltage sources */
/*< 175 if (jelcnt(6).eq.0) go to 186 >*/
L175:
if (cirdat_1.jelcnt[5] == 0) {
goto L186;
}
/*< ititle=0 >*/
ititle = 0;
/*< 176 format(1h0,/,'0**** voltage-controlled voltage sources') >*/
/* L176: */
/*< loc=locate(6) >*/
loc = cirdat_1.locate[5];
/*< kntr=0 >*/
kntr = 0;
/*< 178 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 182 >*/
L178:
if (loc == 0 || nodplc[loc + 13] != 0) {
goto L182;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< loct=lx0+nodplc(loc+13) >*/
loct = tabinf_1.lx0 + nodplc[loc + 12];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< av1(kntr)=value(loct) >*/
av1[kntr - 1] = blank_1.value[loct - 1];
/*< ai1(kntr)=value(loct+1) >*/
ai1[kntr - 1] = blank_1.value[loct];
/*< if (kntr.ge.kntlim) go to 184 >*/
if (kntr >= kntlim) {
goto L184;
}
/*< 180 loc=nodplc(loc) >*/
L180:
loc = nodplc[loc - 1];
/*< go to 178 >*/
goto L178;
/*< 182 if (kntr.eq.0) go to 186 >*/
L182:
if (kntr == 0) {
goto L186;
}
/*< 184 if (ititle.eq.0) write (iofile,176) >*/
L184:
if (ititle == 0) {
io__125.ciunit = status_1.iofile;
s_wsfe(&io__125);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__126.ciunit = status_1.iofile;
s_wsfe(&io__126);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) asrcv,(av1(i),i=1,kntr) >*/
io__127.ciunit = status_1.iofile;
s_wsfe(&io__127);
do_fio(&c__1, (char *)&asrcv, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&av1[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
io__128.ciunit = status_1.iofile;
s_wsfe(&io__128);
do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< kntr=0 >*/
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+14).eq.0)) go to 180 >*/
if (loc != 0 && nodplc[loc + 13] == 0) {
goto L180;
}
/* nonlinear current controlled current sources */
/*< 186 if (jelcnt(7).eq.0) go to 196 >*/
L186:
if (cirdat_1.jelcnt[6] == 0) {
goto L196;
}
/*< ititle=0 >*/
ititle = 0;
/*< 187 format(1h0,/,'0**** current-controlled current sources') >*/
/* L187: */
/*< loc=locate(7) >*/
loc = cirdat_1.locate[6];
/*< kntr=0 >*/
kntr = 0;
/*< 188 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 192 >*/
L188:
if (loc == 0 || nodplc[loc + 12] != 0) {
goto L192;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< loct=lx0+nodplc(loc+12) >*/
loct = tabinf_1.lx0 + nodplc[loc + 11];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< ai1(kntr)=value(loct) >*/
ai1[kntr - 1] = blank_1.value[loct - 1];
/*< if (kntr.ge.kntlim) go to 194 >*/
if (kntr >= kntlim) {
goto L194;
}
/*< 190 loc=nodplc(loc) >*/
L190:
loc = nodplc[loc - 1];
/*< go to 188 >*/
goto L188;
/*< 192 if (kntr.eq.0) go to 196 >*/
L192:
if (kntr == 0) {
goto L196;
}
/*< 194 if (ititle.eq.0) write (iofile,187) >*/
L194:
if (ititle == 0) {
io__129.ciunit = status_1.iofile;
s_wsfe(&io__129);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__130.ciunit = status_1.iofile;
s_wsfe(&io__130);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
io__131.ciunit = status_1.iofile;
s_wsfe(&io__131);
do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< kntr=0 >*/
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+13).eq.0)) go to 190 >*/
if (loc != 0 && nodplc[loc + 12] == 0) {
goto L190;
}
/* nonlinear current controlled voltage sources */
/*< 196 if (jelcnt(8).eq.0) go to 210 >*/
L196:
if (cirdat_1.jelcnt[7] == 0) {
goto L210;
}
/*< ititle=0 >*/
ititle = 0;
/*< 197 format(1h0,/,'0**** current-controlled voltage sources') >*/
/* L197: */
/*< loc=locate(8) >*/
loc = cirdat_1.locate[7];
/*< kntr=0 >*/
kntr = 0;
/*< 198 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 202 >*/
L198:
if (loc == 0 || nodplc[loc + 13] != 0) {
goto L202;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< loct=lx0+nodplc(loc+13) >*/
loct = tabinf_1.lx0 + nodplc[loc + 12];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< av1(kntr)=value(loct) >*/
av1[kntr - 1] = blank_1.value[loct - 1];
/*< ai1(kntr)=value(loct+1) >*/
ai1[kntr - 1] = blank_1.value[loct];
/*< if (kntr.ge.kntlim) go to 204 >*/
if (kntr >= kntlim) {
goto L204;
}
/*< 200 loc=nodplc(loc) >*/
L200:
loc = nodplc[loc - 1];
/*< go to 198 >*/
goto L198;
/*< 202 if (kntr.eq.0) go to 210 >*/
L202:
if (kntr == 0) {
goto L210;
}
/*< 204 if (ititle.eq.0) write (iofile,197) >*/
L204:
if (ititle == 0) {
io__132.ciunit = status_1.iofile;
s_wsfe(&io__132);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__133.ciunit = status_1.iofile;
s_wsfe(&io__133);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) asrcv,(av1(i),i=1,kntr) >*/
io__134.ciunit = status_1.iofile;
s_wsfe(&io__134);
do_fio(&c__1, (char *)&asrcv, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&av1[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
io__135.ciunit = status_1.iofile;
s_wsfe(&io__135);
do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< kntr=0 >*/
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+14).eq.0)) go to 200 >*/
if (loc != 0 && nodplc[loc + 13] == 0) {
goto L200;
}
/* diodes */
/*< 210 if (jelcnt(11).eq.0) go to 300 >*/
L210:
if (cirdat_1.jelcnt[10] == 0) {
goto L300;
}
/*< ititle=0 >*/
ititle = 0;
/*< 211 format(1h0,/,'0**** diodes') >*/
/* L211: */
/*< loc=locate(11) >*/
loc = cirdat_1.locate[10];
/*< kntr=0 >*/
kntr = 0;
/*< 220 if ((loc.eq.0).or.(nodplc(loc+16).ne.0)) go to 240 >*/
L220:
if (loc == 0 || nodplc[loc + 15] != 0) {
goto L240;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< node1=nodplc(loc+2) >*/
node1 = nodplc[loc + 1];
/*< node2=nodplc(loc+3) >*/
node2 = nodplc[loc + 2];
/*< locm=nodplc(loc+5) >*/
locm = nodplc[loc + 4];
/*< locm=nodplc(locm+1) >*/
locm = nodplc[locm];
/*< loct=lx0+nodplc(loc+11) >*/
loct = tabinf_1.lx0 + nodplc[loc + 10];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< amod(kntr)=value(locm) >*/
amod[kntr - 1] = blank_1.value[locm - 1];
/*< cd(kntr)=value(loct+1) >*/
cd[kntr - 1] = blank_1.value[loct];
/*< vd(kntr)=value(lvnim1+node1)-value(lvnim1+node2) >*/
vd[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node1 - 1] - blank_1.value[
tabinf_1.lvnim1 + node2 - 1];
/*< if (modedc.ne.1) go to 225 >*/
if (status_1.modedc != 1) {
goto L225;
}
/*< req(kntr)=1.0d0/value(loct+2) >*/
req[kntr - 1] = 1. / blank_1.value[loct + 1];
/*< cap(kntr)=value(loct+4) >*/
cap[kntr - 1] = blank_1.value[loct + 3];
/*< 225 if (kntr.ge.kntlim) go to 250 >*/
L225:
if (kntr >= kntlim) {
goto L250;
}
/*< 230 loc=nodplc(loc) >*/
L230:
loc = nodplc[loc - 1];
/*< go to 220 >*/
goto L220;
/*< 240 if (kntr.eq.0) go to 300 >*/
L240:
if (kntr == 0) {
goto L300;
}
/*< 250 if (ititle.eq.0) write (iofile,211) >*/
L250:
if (ititle == 0) {
io__138.ciunit = status_1.iofile;
s_wsfe(&io__138);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__139.ciunit = status_1.iofile;
s_wsfe(&io__139);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
io__140.ciunit = status_1.iofile;
s_wsfe(&io__140);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
io__141.ciunit = status_1.iofile;
s_wsfe(&io__141);
do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avd,(vd(i),i=1,kntr) >*/
io__142.ciunit = status_1.iofile;
s_wsfe(&io__142);
do_fio(&c__1, (char *)&avd, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< if (modedc.ne.1) go to 260 >*/
if (status_1.modedc != 1) {
goto L260;
}
/*< write (iofile,afmt3) areq,(req(i),i=1,kntr) >*/
io__143.ciunit = status_1.iofile;
s_wsfe(&io__143);
do_fio(&c__1, (char *)&areq, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&req[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acap,(cap(i),i=1,kntr) >*/
io__144.ciunit = status_1.iofile;
s_wsfe(&io__144);
do_fio(&c__1, (char *)&acap, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cap[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< 260 kntr=0 >*/
L260:
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+16).eq.0)) go to 230 >*/
if (loc != 0 && nodplc[loc + 15] == 0) {
goto L230;
}
/* bipolar junction transistors */
/*< 300 if (jelcnt(12).eq.0) go to 400 >*/
L300:
if (cirdat_1.jelcnt[11] == 0) {
goto L400;
}
/*< ititle=0 >*/
ititle = 0;
/*< 301 format(1h0,/,'0**** bipolar junction transistors') >*/
/* L301: */
/*< loc=locate(12) >*/
loc = cirdat_1.locate[11];
/*< kntr=0 >*/
kntr = 0;
/*< 320 if ((loc.eq.0).or.(nodplc(loc+36).ne.0)) go to 340 >*/
L320:
if (loc == 0 || nodplc[loc + 35] != 0) {
goto L340;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< node1=nodplc(loc+2) >*/
node1 = nodplc[loc + 1];
/*< node2=nodplc(loc+3) >*/
node2 = nodplc[loc + 2];
/*< node3=nodplc(loc+4) >*/
node3 = nodplc[loc + 3];
/*< locm=nodplc(loc+8) >*/
locm = nodplc[loc + 7];
/*< type=nodplc(locm+2) >*/
type = (doublereal) nodplc[locm + 1];
/*< locm=nodplc(locm+1) >*/
locm = nodplc[locm];
/*< loct=lx0+nodplc(loc+22) >*/
loct = tabinf_1.lx0 + nodplc[loc + 21];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< amod(kntr)=value(locm) >*/
amod[kntr - 1] = blank_1.value[locm - 1];
/*< cb(kntr)=type*value(loct+3) >*/
cb[kntr - 1] = type * blank_1.value[loct + 2];
/*< cc(kntr)=type*value(loct+2) >*/
cc[kntr - 1] = type * blank_1.value[loct + 1];
/*< vbe(kntr)=value(lvnim1+node2)-value(lvnim1+node3) >*/
vbe[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
blank_1.value[tabinf_1.lvnim1 + node3 - 1];
/*< vbc(kntr)=value(lvnim1+node2)-value(lvnim1+node1) >*/
vbc[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
blank_1.value[tabinf_1.lvnim1 + node1 - 1];
/*< vce(kntr)=vbe(kntr)-vbc(kntr) >*/
vce[kntr - 1] = vbe[kntr - 1] - vbc[kntr - 1];
/*< betadc(kntr)=cc(kntr)/dsign(dmax1(dabs(cb(kntr)),1.0d-20), >*/
/*< 1 cb(kntr)) >*/
/* Computing MAX */
d_3 = (d_1 = cb[kntr - 1], abs(d_1));
d_2 = max(1e-20,d_3);
betadc[kntr - 1] = cc[kntr - 1] / d_sign(&d_2, &cb[kntr - 1]);
/*< if (modedc.ne.1) go to 325 >*/
if (status_1.modedc != 1) {
goto L325;
}
/*< rx(kntr)=0.0d0 >*/
rx[kntr - 1] = 0.;
/*< if(value(loct+16).ne.0.0d0) rx(kntr)=1.0d0/value(loct+16) >*/
if (blank_1.value[loct + 15] != 0.) {
rx[kntr - 1] = 1. / blank_1.value[loct + 15];
}
/*< ccs(kntr)=value(loct+13) >*/
ccs[kntr - 1] = blank_1.value[loct + 12];
/*< cbx(kntr)=value(loct+15) >*/
cbx[kntr - 1] = blank_1.value[loct + 14];
/*< rpi(kntr)=1.0d0/value(loct+4) >*/
rpi[kntr - 1] = 1. / blank_1.value[loct + 3];
/*< gm(kntr)=value(loct+6) >*/
gm[kntr - 1] = blank_1.value[loct + 5];
/*< ro(kntr)=1.0d0/value(loct+7) >*/
ro[kntr - 1] = 1. / blank_1.value[loct + 6];
/*< cpi(kntr)=value(loct+9) >*/
cpi[kntr - 1] = blank_1.value[loct + 8];
/*< cmu(kntr)=value(loct+11) >*/
cmu[kntr - 1] = blank_1.value[loct + 10];
/*< betaac(kntr)=gm(kntr)*rpi(kntr) >*/
betaac[kntr - 1] = gm[kntr - 1] * rpi[kntr - 1];
/*< ft(kntr)=gm(kntr)/(twopi*dmax1(cpi(kntr)+cmu(kntr)+cbx(kntr), >*/
/*< 1 1.0d-20)) >*/
/* Computing MAX */
d_1 = cpi[kntr - 1] + cmu[kntr - 1] + cbx[kntr - 1];
ft[kntr - 1] = gm[kntr - 1] / (knstnt_1.twopi * max(1e-20,d_1));
/*< 325 if (kntr.ge.kntlim) go to 350 >*/
L325:
if (kntr >= kntlim) {
goto L350;
}
/*< 330 loc=nodplc(loc) >*/
L330:
loc = nodplc[loc - 1];
/*< go to 320 >*/
goto L320;
/*< 340 if (kntr.eq.0) go to 400 >*/
L340:
if (kntr == 0) {
goto L400;
}
/*< 350 if (ititle.eq.0) write (iofile,301) >*/
L350:
if (ititle == 0) {
io__148.ciunit = status_1.iofile;
s_wsfe(&io__148);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__149.ciunit = status_1.iofile;
s_wsfe(&io__149);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
io__150.ciunit = status_1.iofile;
s_wsfe(&io__150);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) aib,(cb(i),i=1,kntr) >*/
io__151.ciunit = status_1.iofile;
s_wsfe(&io__151);
do_fio(&c__1, (char *)&aib, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) aic,(cc(i),i=1,kntr) >*/
io__152.ciunit = status_1.iofile;
s_wsfe(&io__152);
do_fio(&c__1, (char *)&aic, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cc[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avbe,(vbe(i),i=1,kntr) >*/
io__153.ciunit = status_1.iofile;
s_wsfe(&io__153);
do_fio(&c__1, (char *)&avbe, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vbe[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avbc,(vbc(i),i=1,kntr) >*/
io__154.ciunit = status_1.iofile;
s_wsfe(&io__154);
do_fio(&c__1, (char *)&avbc, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vbc[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avce,(vce(i),i=1,kntr) >*/
io__155.ciunit = status_1.iofile;
s_wsfe(&io__155);
do_fio(&c__1, (char *)&avce, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vce[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) abetad,(betadc(i),i=1,kntr) >*/
io__156.ciunit = status_1.iofile;
s_wsfe(&io__156);
do_fio(&c__1, (char *)&abetad, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&betadc[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< if (modedc.ne.1) go to 360 >*/
if (status_1.modedc != 1) {
goto L360;
}
/*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
io__157.ciunit = status_1.iofile;
s_wsfe(&io__157);
do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) arpi,(rpi(i),i=1,kntr) >*/
io__158.ciunit = status_1.iofile;
s_wsfe(&io__158);
do_fio(&c__1, (char *)&arpi, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&rpi[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) arx,(rx(i),i=1,kntr) >*/
io__159.ciunit = status_1.iofile;
s_wsfe(&io__159);
do_fio(&c__1, (char *)&arx, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&rx[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) aro,(ro(i),i=1,kntr) >*/
io__160.ciunit = status_1.iofile;
s_wsfe(&io__160);
do_fio(&c__1, (char *)&aro, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&ro[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acpi,(cpi(i),i=1,kntr) >*/
io__161.ciunit = status_1.iofile;
s_wsfe(&io__161);
do_fio(&c__1, (char *)&acpi, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cpi[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acmu,(cmu(i),i=1,kntr) >*/
io__162.ciunit = status_1.iofile;
s_wsfe(&io__162);
do_fio(&c__1, (char *)&acmu, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cmu[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acbx,(cbx(i),i=1,kntr) >*/
io__163.ciunit = status_1.iofile;
s_wsfe(&io__163);
do_fio(&c__1, (char *)&acbx, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cbx[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) accs,(ccs(i),i=1,kntr) >*/
io__164.ciunit = status_1.iofile;
s_wsfe(&io__164);
do_fio(&c__1, (char *)&accs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&ccs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) abetaa,(betaac(i),i=1,kntr) >*/
io__165.ciunit = status_1.iofile;
s_wsfe(&io__165);
do_fio(&c__1, (char *)&abetaa, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&betaac[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) aft,(ft(i),i=1,kntr) >*/
io__166.ciunit = status_1.iofile;
s_wsfe(&io__166);
do_fio(&c__1, (char *)&aft, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&ft[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< 360 kntr=0 >*/
L360:
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+36).eq.0)) go to 330 >*/
if (loc != 0 && nodplc[loc + 35] == 0) {
goto L330;
}
/* jfets */
/*< 400 if (jelcnt(13).eq.0) go to 500 >*/
L400:
if (cirdat_1.jelcnt[12] == 0) {
goto L500;
}
/*< ititle=0 >*/
ititle = 0;
/*< 401 format(1h0,/,'0**** jfets') >*/
/* L401: */
/*< loc=locate(13) >*/
loc = cirdat_1.locate[12];
/*< kntr=0 >*/
kntr = 0;
/*< 420 if ((loc.eq.0).or.(nodplc(loc+25).ne.0)) go to 440 >*/
L420:
if (loc == 0 || nodplc[loc + 24] != 0) {
goto L440;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< node1=nodplc(loc+2) >*/
node1 = nodplc[loc + 1];
/*< node2=nodplc(loc+3) >*/
node2 = nodplc[loc + 2];
/*< node3=nodplc(loc+4) >*/
node3 = nodplc[loc + 3];
/*< locm=nodplc(loc+7) >*/
locm = nodplc[loc + 6];
/*< type=nodplc(locm+2) >*/
type = (doublereal) nodplc[locm + 1];
/*< locm=nodplc(locm+1) >*/
locm = nodplc[locm];
/*< loct=lx0+nodplc(loc+19) >*/
loct = tabinf_1.lx0 + nodplc[loc + 18];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< amod(kntr)=value(locm) >*/
amod[kntr - 1] = blank_1.value[locm - 1];
/*< cd(kntr)=type*(value(loct+3)-value(loct+4)) >*/
cd[kntr - 1] = type * (blank_1.value[loct + 2] - blank_1.value[loct + 3]);
/*< vgs(kntr)=value(lvnim1+node2)-value(lvnim1+node3) >*/
vgs[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
blank_1.value[tabinf_1.lvnim1 + node3 - 1];
/*< vds(kntr)=value(lvnim1+node1)-value(lvnim1+node3) >*/
vds[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node1 - 1] -
blank_1.value[tabinf_1.lvnim1 + node3 - 1];
/*< if (modedc.ne.1) go to 425 >*/
if (status_1.modedc != 1) {
goto L425;
}
/*< gm(kntr)=value(loct+5) >*/
gm[kntr - 1] = blank_1.value[loct + 4];
/*< gds(kntr)=value(loct+6) >*/
gds[kntr - 1] = blank_1.value[loct + 5];
/*< cgs(kntr)=value(loct+9) >*/
cgs[kntr - 1] = blank_1.value[loct + 8];
/*< cgd(kntr)=value(loct+11) >*/
cgd[kntr - 1] = blank_1.value[loct + 10];
/*< 425 if (kntr.ge.kntlim) go to 450 >*/
L425:
if (kntr >= kntlim) {
goto L450;
}
/*< 430 loc=nodplc(loc) >*/
L430:
loc = nodplc[loc - 1];
/*< go to 420 >*/
goto L420;
/*< 440 if (kntr.eq.0) go to 500 >*/
L440:
if (kntr == 0) {
goto L500;
}
/*< 450 if (ititle.eq.0) write (iofile,401) >*/
L450:
if (ititle == 0) {
io__167.ciunit = status_1.iofile;
s_wsfe(&io__167);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__168.ciunit = status_1.iofile;
s_wsfe(&io__168);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
io__169.ciunit = status_1.iofile;
s_wsfe(&io__169);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
io__170.ciunit = status_1.iofile;
s_wsfe(&io__170);
do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avgs,(vgs(i),i=1,kntr) >*/
io__171.ciunit = status_1.iofile;
s_wsfe(&io__171);
do_fio(&c__1, (char *)&avgs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vgs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avds,(vds(i),i=1,kntr) >*/
io__172.ciunit = status_1.iofile;
s_wsfe(&io__172);
do_fio(&c__1, (char *)&avds, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vds[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< if (modedc.ne.1) go to 460 >*/
if (status_1.modedc != 1) {
goto L460;
}
/*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
io__173.ciunit = status_1.iofile;
s_wsfe(&io__173);
do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) agds,(gds(i),i=1,kntr) >*/
io__174.ciunit = status_1.iofile;
s_wsfe(&io__174);
do_fio(&c__1, (char *)&agds, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gds[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgs,(cgs(i),i=1,kntr) >*/
io__175.ciunit = status_1.iofile;
s_wsfe(&io__175);
do_fio(&c__1, (char *)&acgs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgd,(cgd(i),i=1,kntr) >*/
io__176.ciunit = status_1.iofile;
s_wsfe(&io__176);
do_fio(&c__1, (char *)&acgd, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< 460 kntr=0 >*/
L460:
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+25).eq.0)) go to 430 >*/
if (loc != 0 && nodplc[loc + 24] == 0) {
goto L430;
}
/* mosfets */
/*< 500 if (jelcnt(14).eq.0) go to 600 >*/
L500:
if (cirdat_1.jelcnt[13] == 0) {
goto L600;
}
/*< ititle=0 >*/
ititle = 0;
/*< 501 format(1h0,/,'0**** mosfets') >*/
/* L501: */
/*< loc=locate(14) >*/
loc = cirdat_1.locate[13];
/*< kntr=0 >*/
kntr = 0;
/*< 520 if ((loc.eq.0).or.(nodplc(loc+33).ne.0)) go to 540 >*/
L520:
if (loc == 0 || nodplc[loc + 32] != 0) {
goto L540;
}
/*< kntr=kntr+1 >*/
++kntr;
/*< locv=nodplc(loc+1) >*/
locv = nodplc[loc];
/*< node1=nodplc(loc+2) >*/
node1 = nodplc[loc + 1];
/*< node2=nodplc(loc+3) >*/
node2 = nodplc[loc + 2];
/*< node3=nodplc(loc+4) >*/
node3 = nodplc[loc + 3];
/*< node4=nodplc(loc+5) >*/
node4 = nodplc[loc + 4];
/*< node5=nodplc(loc+6) >*/
node5 = nodplc[loc + 5];
/*< node6=nodplc(loc+7) >*/
node6 = nodplc[loc + 6];
/*< locm=nodplc(loc+8) >*/
locm = nodplc[loc + 7];
/*< type=nodplc(locm+2) >*/
type = (doublereal) nodplc[locm + 1];
/*< locm=nodplc(locm+1) >*/
locm = nodplc[locm];
/*< loct=lx0+nodplc(loc+26) >*/
loct = tabinf_1.lx0 + nodplc[loc + 25];
/*< anam(kntr)=value(locv) >*/
anam[kntr - 1] = blank_1.value[locv - 1];
/*< amod(kntr)=value(locm) >*/
amod[kntr - 1] = blank_1.value[locm - 1];
/*< cd(kntr)=type*value(loct+4) >*/
cd[kntr - 1] = type * blank_1.value[loct + 3];
/*< vgs(kntr)=value(lvnim1+node2)-value(lvnim1+node3) >*/
vgs[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
blank_1.value[tabinf_1.lvnim1 + node3 - 1];
/*< vds(kntr)=value(lvnim1+node1)-value(lvnim1+node3) >*/
vds[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node1 - 1] -
blank_1.value[tabinf_1.lvnim1 + node3 - 1];
/*< vbs(kntr)=value(lvnim1+node4)-value(lvnim1+node3) >*/
vbs[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node4 - 1] -
blank_1.value[tabinf_1.lvnim1 + node3 - 1];
/*< if (modedc.ne.1) go to 525 >*/
if (status_1.modedc != 1) {
goto L525;
}
/*< xl=value(locv+1)-2.0d0*value(locm+28) >*/
xl = blank_1.value[locv] - blank_1.value[locm + 27] * 2.;
/*< xw=value(locv+2) >*/
xw = blank_1.value[locv + 1];
/*< covlgs=value(locm+13)*xw >*/
covlgs = blank_1.value[locm + 12] * xw;
/*< covlgd=value(locm+14)*xw >*/
covlgd = blank_1.value[locm + 13] * xw;
/*< covlgb=value(locm+15)*xl >*/
covlgb = blank_1.value[locm + 14] * xl;
/*< xqco=value(locm+35) >*/
xqco = blank_1.value[locm + 34];
/*< devmod=value(locv+8) >*/
devmod = blank_1.value[locv + 7];
/*< vdsat(kntr)=value(locv+10) >*/
vdsat[kntr - 1] = blank_1.value[locv + 9];
/*< vth(kntr)=value(locv+9) >*/
vth[kntr - 1] = blank_1.value[locv + 8];
/*< gm(kntr)=value(loct+7) >*/
gm[kntr - 1] = blank_1.value[loct + 6];
/*< gds(kntr)=value(loct+8) >*/
gds[kntr - 1] = blank_1.value[loct + 7];
/*< gmb(kntr)=value(loct+9) >*/
gmb[kntr - 1] = blank_1.value[loct + 8];
/*< if(devmod.gt.0.0d0) go to 521 >*/
if (devmod > 0.) {
goto L521;
}
/*< vth(kntr)=value(locv+9) >*/
vth[kntr - 1] = blank_1.value[locv + 8];
/*< 521 cbd(kntr)=value(loct+24) >*/
L521:
cbd[kntr - 1] = blank_1.value[loct + 23];
/*< cbs(kntr)=value(loct+26) >*/
cbs[kntr - 1] = blank_1.value[loct + 25];
/*< cgsov(kntr)=covlgs >*/
cgsov[kntr - 1] = covlgs;
/*< cgdov(kntr)=covlgd >*/
cgdov[kntr - 1] = covlgd;
/*< cgbov(kntr)=covlgb >*/
cgbov[kntr - 1] = covlgb;
/*< if (xqco.gt.0.5d0) go to 522 >*/
if (xqco > .5) {
goto L522;
}
/*< cggb(kntr)=value(loct+18) >*/
cggb[kntr - 1] = blank_1.value[loct + 17];
/*< cgdb(kntr)=value(loct+19) >*/
cgdb[kntr - 1] = blank_1.value[loct + 18];
/*< cgsb(kntr)=value(loct+20) >*/
cgsb[kntr - 1] = blank_1.value[loct + 19];
/*< cbgb(kntr)=value(loct+21) >*/
cbgb[kntr - 1] = blank_1.value[loct + 20];
/*< cbdb(kntr)=value(loct+22) >*/
cbdb[kntr - 1] = blank_1.value[loct + 21];
/*< cbsb(kntr)=value(loct+23) >*/
cbsb[kntr - 1] = blank_1.value[loct + 22];
/*< go to 525 >*/
goto L525;
/*< 522 cgs(kntr)=value(loct+12) >*/
L522:
cgs[kntr - 1] = blank_1.value[loct + 11];
/*< cgd(kntr)=value(loct+14) >*/
cgd[kntr - 1] = blank_1.value[loct + 13];
/*< cgb(kntr)=value(loct+16) >*/
cgb[kntr - 1] = blank_1.value[loct + 15];
/*< 525 if (kntr.ge.kntlim) go to 550 >*/
L525:
if (kntr >= kntlim) {
goto L550;
}
/*< 530 loc=nodplc(loc) >*/
L530:
loc = nodplc[loc - 1];
/*< go to 520 >*/
goto L520;
/*< 540 if (kntr.eq.0) go to 600 >*/
L540:
if (kntr == 0) {
goto L600;
}
/*< 550 if (ititle.eq.0) write (iofile,501) >*/
L550:
if (ititle == 0) {
io__190.ciunit = status_1.iofile;
s_wsfe(&io__190);
e_wsfe();
}
/*< ititle=1 >*/
ititle = 1;
/*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
io__191.ciunit = status_1.iofile;
s_wsfe(&io__191);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
io__192.ciunit = status_1.iofile;
s_wsfe(&io__192);
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< if(type.eq.0.0d0) go to 555 >*/
if (type == 0.) {
goto L555;
}
/*< write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
io__193.ciunit = status_1.iofile;
s_wsfe(&io__193);
do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avgs,(vgs(i),i=1,kntr) >*/
io__194.ciunit = status_1.iofile;
s_wsfe(&io__194);
do_fio(&c__1, (char *)&avgs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vgs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avds,(vds(i),i=1,kntr) >*/
io__195.ciunit = status_1.iofile;
s_wsfe(&io__195);
do_fio(&c__1, (char *)&avds, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vds[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avbs,(vbs(i),i=1,kntr) >*/
io__196.ciunit = status_1.iofile;
s_wsfe(&io__196);
do_fio(&c__1, (char *)&avbs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vbs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< if (modedc.ne.1) go to 560 >*/
if (status_1.modedc != 1) {
goto L560;
}
/*< write (iofile,afmt2) avth,(vth(i),i=1,kntr) >*/
io__197.ciunit = status_1.iofile;
s_wsfe(&io__197);
do_fio(&c__1, (char *)&avth, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vth[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avdsat,(vdsat(i),i=1,kntr) >*/
io__198.ciunit = status_1.iofile;
s_wsfe(&io__198);
do_fio(&c__1, (char *)&avdsat, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vdsat[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
io__199.ciunit = status_1.iofile;
s_wsfe(&io__199);
do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) agds,(gds(i),i=1,kntr) >*/
io__200.ciunit = status_1.iofile;
s_wsfe(&io__200);
do_fio(&c__1, (char *)&agds, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gds[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) agmb,(gmb(i),i=1,kntr) >*/
io__201.ciunit = status_1.iofile;
s_wsfe(&io__201);
do_fio(&c__1, (char *)&agmb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gmb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acbd,(cbd(i),i=1,kntr) >*/
io__202.ciunit = status_1.iofile;
s_wsfe(&io__202);
do_fio(&c__1, (char *)&acbd, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cbd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acbs,(cbs(i),i=1,kntr) >*/
io__203.ciunit = status_1.iofile;
s_wsfe(&io__203);
do_fio(&c__1, (char *)&acbs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cbs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgsov,(cgsov(i),i=1,kntr) >*/
io__204.ciunit = status_1.iofile;
s_wsfe(&io__204);
do_fio(&c__1, (char *)&acgsov, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgsov[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgdov,(cgdov(i),i=1,kntr) >*/
io__205.ciunit = status_1.iofile;
s_wsfe(&io__205);
do_fio(&c__1, (char *)&acgdov, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgdov[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgbov,(cgbov(i),i=1,kntr) >*/
io__206.ciunit = status_1.iofile;
s_wsfe(&io__206);
do_fio(&c__1, (char *)&acgbov, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgbov[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< if (xqco.gt.0.5d0) go to 552 >*/
if (xqco > .5) {
goto L552;
}
/*< write (iofile,551) >*/
io__207.ciunit = status_1.iofile;
s_wsfe(&io__207);
e_wsfe();
/*< 551 format(' derivatives of gate (dqgdvx) and bulk (dqbdvx) charges') >*/
/*< write (iofile,afmt3) acggb,(cggb(i),i=1,kntr) >*/
io__208.ciunit = status_1.iofile;
s_wsfe(&io__208);
do_fio(&c__1, (char *)&acggb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cggb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgdb,(cgdb(i),i=1,kntr) >*/
io__209.ciunit = status_1.iofile;
s_wsfe(&io__209);
do_fio(&c__1, (char *)&acgdb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgdb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgsb,(cgsb(i),i=1,kntr) >*/
io__210.ciunit = status_1.iofile;
s_wsfe(&io__210);
do_fio(&c__1, (char *)&acgsb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgsb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acbgb,(cbgb(i),i=1,kntr) >*/
io__211.ciunit = status_1.iofile;
s_wsfe(&io__211);
do_fio(&c__1, (char *)&acbgb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cbgb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acbdb,(cbdb(i),i=1,kntr) >*/
io__212.ciunit = status_1.iofile;
s_wsfe(&io__212);
do_fio(&c__1, (char *)&acbdb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cbdb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acbsb,(cbsb(i),i=1,kntr) >*/
io__213.ciunit = status_1.iofile;
s_wsfe(&io__213);
do_fio(&c__1, (char *)&acbsb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cbsb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< go to 560 >*/
goto L560;
/*< 552 write (iofile,afmt3) acgs,(cgs(i),i=1,kntr) >*/
L552:
io__214.ciunit = status_1.iofile;
s_wsfe(&io__214);
do_fio(&c__1, (char *)&acgs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgd,(cgd(i),i=1,kntr) >*/
io__215.ciunit = status_1.iofile;
s_wsfe(&io__215);
do_fio(&c__1, (char *)&acgd, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgb,(cgb(i),i=1,kntr) >*/
io__216.ciunit = status_1.iofile;
s_wsfe(&io__216);
do_fio(&c__1, (char *)&acgb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< go to 560 >*/
goto L560;
/*< 555 write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
L555:
io__217.ciunit = status_1.iofile;
s_wsfe(&io__217);
do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) aig,(cg(i),i=1,kntr) >*/
io__218.ciunit = status_1.iofile;
s_wsfe(&io__218);
do_fio(&c__1, (char *)&aig, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cg[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avgs,(vgs(i),i=1,kntr) >*/
io__219.ciunit = status_1.iofile;
s_wsfe(&io__219);
do_fio(&c__1, (char *)&avgs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vgs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avds,(vds(i),i=1,kntr) >*/
io__220.ciunit = status_1.iofile;
s_wsfe(&io__220);
do_fio(&c__1, (char *)&avds, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vds[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt2) avbs,(vbs(i),i=1,kntr) >*/
io__221.ciunit = status_1.iofile;
s_wsfe(&io__221);
do_fio(&c__1, (char *)&avbs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&vbs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< if (modedc.ne.1) go to 560 >*/
if (status_1.modedc != 1) {
goto L560;
}
/*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
io__222.ciunit = status_1.iofile;
s_wsfe(&io__222);
do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) agds,(gds(i),i=1,kntr) >*/
io__223.ciunit = status_1.iofile;
s_wsfe(&io__223);
do_fio(&c__1, (char *)&agds, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&gds[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgs,(cgs(i),i=1,kntr) >*/
io__224.ciunit = status_1.iofile;
s_wsfe(&io__224);
do_fio(&c__1, (char *)&acgs, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgs[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgd,(cgd(i),i=1,kntr) >*/
io__225.ciunit = status_1.iofile;
s_wsfe(&io__225);
do_fio(&c__1, (char *)&acgd, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgd[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acgb,(cgb(i),i=1,kntr) >*/
io__226.ciunit = status_1.iofile;
s_wsfe(&io__226);
do_fio(&c__1, (char *)&acgb, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cgb[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< write (iofile,afmt3) acds,(cds(i),i=1,kntr) >*/
io__227.ciunit = status_1.iofile;
s_wsfe(&io__227);
do_fio(&c__1, (char *)&acds, (ftnlen)sizeof(doublereal));
i_1 = kntr;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&cds[i - 1], (ftnlen)sizeof(doublereal));
}
e_wsfe();
/*< 560 kntr=0 >*/
L560:
kntr = 0;
/*< if ((loc.ne.0).and.(nodplc(loc+33).eq.0)) go to 530 >*/
if (loc != 0 && nodplc[loc + 32] == 0) {
goto L530;
}
/* operating point analyses */
/*< 600 if (modedc.ne.1) go to 700 >*/
L600:
if (status_1.modedc != 1) {
goto L700;
}
/*< if (kinel.eq.0) go to 610 >*/
if (dc_1.kinel == 0) {
goto L610;
}
/*< call sstf >*/
sstf_();
/*< 610 if (nsens.eq.0) go to 700 >*/
L610:
if (tabinf_1.nsens == 0) {
goto L700;
}
/*< call sencal >*/
sencal_();
/* finished */
/*< 700 if (modedc.eq.2) go to 710 >*/
L700:
if (status_1.modedc == 2) {
goto L710;
}
/*< if (jacflg.ne.0) go to 705 >*/
if (ac_1.jacflg != 0) {
goto L705;
}
/*< call clrmem(lvnim1) >*/
clrmem_(&tabinf_1.lvnim1);
/*< call clrmem(lx0) >*/
clrmem_(&tabinf_1.lx0);
/*< 705 call clrmem(lvn) >*/
L705:
clrmem_(&tabinf_1.lvn);
/*< call clrmem(lvntmp) >*/
clrmem_(&tabinf_1.lvntmp);
/*< if (memptr(macins)) call clrmem(macins) >*/
if (memptr_(&tabinf_1.macins)) {
clrmem_(&tabinf_1.macins);
}
/*< 710 call second(t2) >*/
L710:
second_(&t2);
/*< rstats(5)=rstats(5)+t2-t1 >*/
miscel_1.rstats[4] = miscel_1.rstats[4] + t2 - t1;
/*< return >*/
return 0;
/*< end >*/
} /* dcop_ */
#undef cgdb
#undef cbgb
#undef cds
#undef cgb
#undef cgd
#undef cgs
#undef vth
#undef cbs
#undef cbd
#undef vbs
#undef vgs
#undef vds
#undef gds
#undef rpi
#undef rx
#undef cbx
#undef req
#undef ccs
#undef cmu
#undef cpi
#undef vce
#undef vbc
#undef vbe
#undef cap
#undef ai1
#undef av1
#undef cvalue
#undef nodplc
#undef ro
#undef ft
#undef vd
#undef betadc
#undef betaac
#undef cg
#undef cd
#undef cc
#undef cb
#undef vdsat
#undef cgsov
#undef cgbov
#undef cgdov
#undef cgsb
#undef cggb
#undef afmt1
#undef ablnk
#undef aft
#undef abetaa
#undef abetad
#undef arx
#undef acbx
#undef accs
#undef agmb
#undef agds
#undef agm
#undef avdsat
#undef avth
#undef acds
#undef acgb
#undef acbsb
#undef acbdb
#undef acbgb
#undef acgsb
#undef acgdb
#undef acggb
#undef acgbov
#undef acgdov
#undef acgsov
#undef acbs
#undef acbd
#undef acgd
#undef acgs
#undef acmu
#undef acpi
#undef acap
#undef aro
#undef arpi
#undef areq
#undef aig
#undef aic
#undef aib
#undef aid
#undef asrci
#undef asrcv
#undef avbs
#undef avds
#undef avgs
#undef avce
#undef avbc
#undef avbe
#undef avd
#undef optitl
#undef afmt4
#undef afmt3
#undef afmt2